// class ScrollIndexPage extends StatefulWidget {
//   final int selectIndex;
//
//   const ScrollIndexPage({Key key, this.selectIndex = 0})
//       : super(key: key); // 外部传入默认选择第几个
//   @override
//   _ScrollIndexPageState createState() => _ScrollIndexPageState();
// }
//
// class _ScrollIndexPageState extends State<ScrollIndexPage> {
//   Timer _timer; //倒计时的计时器
//   bool isAuto = false;
//   int currentIndex = 0; //当前所选项
//   int currentIndex2 = 0; //当前所选项
//   double _itemWidth; //单个Item的宽度
//   ScrollController _scrollController = new ScrollController(); //滑动控制器
//   bool clearData = false; // 支持清楚数据功能，true代表恢复默认样式
//   List<int> _list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,];
//
//   @override
//   void initState() {
//     super.initState();
//     _scrollController.addListener(() {
//       setState(() {}); //滑动过程中也实时刷新
//     });
//   }
//
//   @override
//   void didChangeDependencies() {
//     //是否更改了依赖项
//     super.didChangeDependencies();
//     double screenWidth = MediaQuery.of(context).size.width; //获取屏幕宽度
//     int select = widget.selectIndex > 0
//         ? widget.selectIndex
//         : 0; //如果index大于0，则用index，否则返回0
//     _scrollController = ScrollController(
//       initialScrollOffset: (1000 + select) * (250) / 1 - 70, //初始滚动偏移
//     );
//   }
//
//   @override
//   Widget build(BuildContext context) {
//     return Scaffold(
//       body: Container(
//           color: Colors.cyanAccent,
//           width: MediaQuery.of(context).size.width,
//           height: MediaQuery.of(context).size.height,
//           alignment: Alignment.center,
//           child: Column(
//             //子Widget剧中
//             mainAxisAlignment: MainAxisAlignment.center,
//             crossAxisAlignment: CrossAxisAlignment.center,
//             children: [
//               // Text("currentIndex $currentIndex"),
//               // Text("currentIndex2 $currentIndex2"),
//               GestureDetector(
//                   onTap: () {
//                     setState(() {
//                       _cancleTimer();
//                     });
//                   },
//                   child: Container(
//                       height: 250,
//                       width: MediaQuery.of(context).size.width,
//                       alignment: Alignment.center,
//                       child: buildSingleChildScrollView())),
//               GestureDetector(
//                   onTap: () {
//                     setState(() {
//                       isAuto = !isAuto;
//                     });
//                     if (isAuto) {
//                       _startTimer();
//                     } else {
//                       _cancleTimer();
//                     }
//                   },
//                   child: Icon(Icons.arrow_upward_outlined)),
//               // HousePerson(),
//             ],
//           )),
//     );
//   }
//
//   Widget buildSingleChildScrollView() {
//     //监听滑动结束
//     return NotificationListener<ScrollEndNotification>(
//       //通知兼听
//       onNotification: (ScrollNotification scrollNotification) {
//         ScrollMetrics metrics = scrollNotification.metrics; //滑动信息封装
//         double pixels = metrics.pixels; //获取当前的滑动位置
//         print('当前滑动距离：${pixels.toString}'); // 78
//         double maxScrollExtent = metrics.maxScrollExtent; //最大可滑动距离 7461
//         print('最大滑动距离：${maxScrollExtent.toString}');
//         double scrollIndex = pixels / _itemWidth; //计算个数=(滑动距离-单个Item)
//         double scrollOffset =
//             pixels % _itemWidth; //计算滑动位置，（是否刚好滑动整数个，取余！=0，则是为滑动完整）
//         //当前选中
//         // currentIndex =   _list[scrollIndex.round() % _list.length]; //忽略小数点后的数字
//         currentIndex = scrollIndex.round(); //忽略小数点后的数字
//         print('当前1个数：${currentIndex.toString}');
//         currentIndex2 =
//             _list[scrollIndex.round() % _list.length] - 1; //忽略小数点后的数字
//         print('当前2个数：${currentIndex2.toString}');
//         if (pixels == maxScrollExtent) {
//           print('已滑动到底部');
//         } else if (pixels == 0) {
//           print('已滑动到顶部');
//         } else {
//           if (scrollOffset != 0.0) {
//             print('滑动结束 未滑动到边界 scrollIndex $scrollIndex');
//             Future.delayed(Duration.zero, () {
//               _scrollController.animateTo(
//                 //将未滑动完整的item，继续滑动为完整
//                 currentIndex * _itemWidth - 70,
//                 duration: Duration(milliseconds: 200),
//                 curve: Curves.linearToEaseOut,
//               );
//             });
//           } else {
//             print('滑动结束 滑动到边界 scrollIndex $scrollIndex');
//           }
//         }
//         setState(
//           () {},
//         );
//         return true;
//       },
//       child: Container(
//         width: MediaQuery.of(context).size.width,
//         child: ListView.builder(
//             physics: BouncingScrollPhysics(),
//             controller: _scrollController,
//             itemCount: _list.length * 2000,
//             scrollDirection: Axis.horizontal,
//             itemBuilder: (BuildContext context, int index) {
//               return buildItemWidget(index);
//             }),
//       ),
//     );
//   }
//
//   Widget buildItemWidget(int index) {
//     //一页显示5个
//     _itemWidth = 250; //item宽度
//     double imageWidth = 200; //图片宽度
//     //当控制器绑定成功后再使用
//     if (_scrollController.hasClients) {
//       double offset = _scrollController.offset; //获取当前滑动的距离
//       double scorllIndex = offset / _itemWidth;
//       print('scorllIndex${scorllIndex.toString}');
//       double uniWidth = scorllIndex - scorllIndex.round();
//       if ((scorllIndex.round() + 0) == index) {
//         imageWidth = 200 + 40 * (1.0 - uniWidth);
//       } else if ((scorllIndex.round() + 1) == index) {
//         imageWidth = 200 + 40 * uniWidth;
//       }
//     }
//     return Center(
//       child: AnimatedContainer(
//         duration: Duration(seconds: 5),
//         width: _itemWidth,
//         alignment: Alignment.center,
//         child: ClipRRect(
//           borderRadius: BorderRadius.circular(8),
//           child: Container(
//             color: Color.fromRGBO(27, 56, 96, 1),
//             child: Stack(
//               alignment: Alignment.center,
//               children: [
//                 ClipRRect(
//                   borderRadius: BorderRadius.circular(8),
//                   child: Image.asset(
//                     imageList01[0].image01,
//                     width: imageWidth,
//                     fit: BoxFit.fill,
//                   ),
//                 ),
//                 ClipRRect(
//                   borderRadius: BorderRadius.circular(8),
//                   child: Image.asset(
//                     imageList01[0].image02,
//                     width: imageWidth,
//                     fit: BoxFit.fill,
//                   ),
//                 ),
//                 Text(_list[index % _list.length].toString()),
//               ],
//             ),
//           ),
//         ),
//       ),
//     );
//   }
//
//   void _startTimer() {
//     _timer = Timer.periodic(Duration(seconds: 1), (timer) {
//       _scrollController.animateTo(
//         //将未滑动完整的item，继续滑动为完整
//         _scrollController.offset + _itemWidth,
//         duration: Duration(milliseconds: 200),
//         curve: Curves.linear,
//       );
//       setState(() {});
//     });
//   }
//   //取消到倒计时的计时器
//   void _cancleTimer() {
//     _timer?.cancel();
//   }
//
//   @override
//   void dispose() {
//     //为了避免内存泄露，需要调用_controller.dispose
//     _scrollController.dispose();
//     super.dispose();
//   }
// }